Computer systems are often subject to data-corruption, both during storage to disk (or some other storage device) and during transmission between computers or devices within a computer. Myriad techniques have been developed to battle data-corruption and to ensure data integrity. Error-correction coding (ECC) and parity schemes, for example, are used routinely in detecting and correcting errors that appear, both during storage and transmission, in individual bits and bytes of data.
Even with these data-integrity schemes, however, corruption occasionally occurs in larger chunks of data on storage disks, such as disk blocks that often include hundreds or even thousands of bytes of data. Sources of such corruption include bad disk reads and writes caused by hardware or firmware errors, disk writes delivered to the wrong storage locations, and data loss during read and write operations. Data-corruption of this nature occurs very infrequently, but it can have devastating effects when it does occur.